package com.mrdeer.web.service.sys;

import com.mrdeer.common.base.BaseService;
import com.mrdeer.common.entity.dto.UserRoleDTO;
import com.mrdeer.common.entity.sys.Role;
import com.mrdeer.common.entity.sys.User;
import com.mrdeer.common.entity.sys.UserRole;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;

import java.util.List;

/**
 * 用户角色接口
 */
@CacheConfig(cacheNames = "userRole")
public interface SysUserRoleService extends BaseService<UserRole, UserRoleDTO> {

    /**
     * 通过用户id获取
     *
     * @param userId
     * @return
     */
    @Cacheable(key = "#userId")
    List<Role> findByUserId(String userId);

    /**
     * 通过用户id获取用户角色关联的部门数据
     *
     * @param userId
     * @return
     */
    List<String> findDepIdsByUserId(String userId);

    /**
     * 通过roleId查找
     *
     * @param roleId
     * @return
     */
    List<UserRole> findByRoleId(String roleId);

    /**
     * 通过roleId查找用户
     *
     * @param roleId
     * @return
     */
    List<User> findUserByRoleId(String roleId);

    /**
     * 删除用户角色
     *
     * @param userId
     */
    void deleteByUserId(String userId);
}
